<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>1.数组的reduce方法</title>
	</head>
	<body>
		<!-- 
				数组的reduce方法（很常用）：
						语法：arr.reduce((preValue, current, index, arr) => {} ,initialValue)
						preValue:
									第一次执行回调时为给定的初始值initialValue，以后是上一次执行回调时的返回值。
									备注：若没有传入initialValue，则第一次的preValue值是数组中第一个元素的值。
						current 表示当前正在处理的元素；
						initialValue 表示初始值。一般做数学运算时设置为0，若为筛选最值可以不传。
						arr：当前操作的数组
						index 表示当前正在处理的数组元素的索引，若传入了initialValue值，则为0，否则为1；

		 -->
		<script type="text/javascript" >
			let arr = [1,2,3,4,5,99,6,7,8,9,10]
			
			//reduce完成累计操作
			const x = arr.reduce((preValue,current)=>{
				return preValue + current
			})
			console.log('arr数组中所有元素的和是：',x)

			//reduce完成条件统计
			const x2 = arr.reduce((preValue,current)=>{
				return preValue + (current % 2 ? 1 : 0)
			},0)
			console.log('arr数组中所有奇数一共有：',x2)

			//reduce完成条件计算
			const x3 = arr.reduce((preValue,current)=>{
				return preValue + (current % 2 ? current : 0)
			},0)
			console.log('arr数组中所有奇数的和：',x3)

			//reduce完成筛选最值
			const x4 = arr.reduce((preValue,current)=>{
				return Math.max(preValue,current)
			})
			console.log('arr数组中最大的那个是：',x4)

			

		</script>
	</body>
</html>